package com.project.mapper;

import com.project.bean.UnitBean;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface IUnitMapper {
    /**
     * 查询所有设备信息
     * @param roomId 房间的编号
     * @return 返回设备报损对象集合
     */
    public List<UnitBean> findAll(Integer roomId);

    /**
     * 添加设备损坏记录
     * @param unit 设备损坏记录对象
     */
    @Insert("insert into t_unit(un_unitInfo,un_date,un_state,fk_roomId)" +
            "values(#{unitInfo},#{date},#{unState},#{roomBean.roomId})")
    public void add(UnitBean unit);

    /**
     * 根据设备损坏记录编号查询
     * @param id
     * @return
     */
    public UnitBean findById(Integer id);

    /**
     * 根据设施编号修改设施状态
     * @param id 设备记录编号
     * @param state 设施新状态
     */
    @Update("update t_unit set un_state=#{state} where pk_unitId=#{id}")
    public void updateState(@Param("id") Integer id, @Param("state") String state);

    /**
     * 统计指定房间指定状态的设施数量
     * @param state 状态
     * @param roomId 房间编号
     * @return 返回记录的条数
     */
    public int countByRoom(@Param("state") String state,
                           @Param("roomId") Integer roomId);

    /**
     * 根据房间的id删除设施记录
     * @param roomId 房间id
     */
    @Delete("delete from t_unit where fk_roomId=#{roomId}")
    public void delAll(Integer roomId);

}
